import type { Emitter } from "mitt";
import mitt from "mitt";

type messageType = {
  /** 来源人 */
  fromUser: string,
  /** 接收人 */
  toUser: string,
  /** 分组 */
  group: string,
  /** 消息类型 */
  msgType: number,
  /** 消息数据 */
  message: {
    /** 是否有报警 */
    hasAlarm: boolean;
    /** 告警记录id */
    alarmRecordId?: number,
    /** 告警事件 */
    alarmTitle?: string,
    /** 设备id */
    deviceId?: number,
    /** 单位id */
    unityId?: number,
    /** 项目id */
    projectId?: number,
    /** 建筑id 室外设备 为0 */
    buildingId?: number,
    /** 楼层id 室外设备 为0 */
    drawingId?: number
  }
}

/** 全局公共事件需要在此处添加类型 */
type Events = {
  openPanel: string;
  tagViewsChange: string;
  tagViewsShowModel: string;
  logoChange: boolean;
  changLayoutRoute: string;
  /** 告警事件 */
  alarmEvents: messageType;
  /** 单位大屏告警事件 */
  alarmEventsUnit: messageType;
  /** 项目大屏告警事件 */
  alarmEventsProject: messageType;
  /** 建筑图纸告警事件 */
  alarmEventsBuilding: messageType;
  /** 监管大屏告警事件 */
  alarmEventsSupervision: messageType;
  /** 运营消息推送事件 */
  eventsOperate: messageType;
};

export const emitter: Emitter<Events> = mitt<Events>();
